<?php

namespace totum\common\Lang;

use DateTime;

class ES implements LangInterface
{
    use TranslateTrait;
    use SearchTrait;

    public const TRANSLATES = array (
  'Deleting' => 'Eliminación',
  'Not found: %s' => 'No encontrado: %s',
  'User not found' => 'Usuario no encontrado',
  'Not found [[%s]] for the [[%s]] parameter.' => 'No encontrado [[%s]] para el parámetro [[%s]].',
  'Template not found.' => 'Plantilla no encontrada.',
  'No [[%s]] is specified for the [[%s]] parameter.' => 'No se especificó [[%s]] para el parámetro [[%s]].',
  'Parametr [[%s]] is required in [[%s]] function.' => 'El parámetro [[%s]] es obligatorio en la función [[%s]].',
  'The function is only available for the Creator role.' => 'Función disponible solo para el rol de Creador.',
  'The function is not available to you.' => 'Función no disponible.',
  'Password doesn\'t match.' => 'La contraseña no coincide.',
  'Scheme string is empty.' => 'La cadena del esquema está vacía.',
  'The function is only available for cycles tables.' => 'Función disponible solo para tablas de ciclos.',
  'Using a comparison type in a filter of list/row is not allowed' => 'No se permite usar tipo de comparación para filtrar list/row',
  'Using a comparison type in a search in list/row is not allowed' => 'No se permite el uso de tipo de comparación en la búsqueda en list/row',
  'Field data type error' => 'Tipo de dato incorrecto en el campo',
  'Not correct field name in query to [[%s]] table.' => 'Nombre de campo incorrecto en la consulta a la tabla [[%s]].',
  'You see the contents of the table calculated and saved before the last transaction with the error.' => 'Ves el contenido de la tabla calculado y guardado antes del último error de transacción.',
  'System error. Action type not specified.' => 'Error del sistema. Tipo de acción no especificado.',
  'Field [[%s]] of table [[%s]] in row with id [[%s]] contains non-numeric data' => 'El campo [[%s]] de la tabla [[%s]] en la fila con id [[%s]] contiene información no numérica',
  'Scheme source not defined.' => 'Fuente de esquema no definida.',
  'Fill in the parameter [[%s]].' => 'Complete el parámetro [[%s]].',
  'Parametr [[%s]] is required.' => 'El parámetro [[%s]] es obligatorio.',
  'Each button must contain [[%s]].' => 'Cada botón debe contener [[%s]].',
  'The parameter [[%s]] should be of type row/list.' => 'El parámetro [[%s]] debe ser de tipo row/list.',
  'The parameter [[%s]] of [[%s]] should be of type row/list.' => 'El parámetro [[%s]] en [[%s]] debe ser de tipo row/list.',
  'The parameter [[%s]] should be of type true/false.' => 'El parámetro [[%s]] debe ser de tipo true/false.',
  'The parameter [[%s]] should [[not]] be of type row/list.' => 'El parámetro [[%s]] no debe ser de tipo row/list.',
  'The parameter [[%s]] should be of type string.' => 'El parámetro [[%s]] debe ser de tipo cadena.',
  '[[%s]] should be of type string.' => '[[%s]] debe ser una cadena.',
  'The cycles table is specified incorrectly.' => 'La tabla de ciclos es incorrecta.',
  'Language %s not found.' => 'Idioma %s no encontrado.',
  'Comparing not numeric string or lists with number field' => 'Comparación de cadenas no numéricas o listas con un campo numérico',
  'You cannot create query to PostgreSql with 65000 and more parameters.' => 'No puedes crear una consulta a PostgreSQL con >= 65000 parámetros.',
  'For temporary tables only.' => 'Solo para tablas temporales',
  'For temporary tables forms only.' => 'Solo para formularios basados en tablas temporales.',
  'For simple and cycles tables only.' => 'Solo para tablas simples y tablas de ciclos.',
  'The table has no n-sorting.' => 'La tabla no tiene n-ordenación.',
  'The table [[%s]] has no n-sorting.' => 'La tabla [[%s]] no tiene n-ordenación.',
  'The %s should be here.' => 'Aquí debe estar %s.',
  'Parametr [[%s]] is required and should be a number.' => 'El parámetro [[%s]] es obligatorio y debe ser un número.',
  'Parametr [[%s]] is required and should be a string.' => 'El parámetro [[%s]] es obligatorio y debe ser una cadena.',
  'The %s parameter is required and must start with %s.' => 'El parámetro %s es obligatorio y debe comenzar con %s.',
  'The %s parameter should not be an array.' => 'El parámetro %s no debe ser un array.',
  'The %s field value should not be an array.' => 'El valor del campo %s no debe ser un array.',
  'The value of the number field should not be an array.' => 'El valor de un campo de tipo Número no debe ser un array.',
  'The %s parameter must be a number.' => 'El parámetro %s debe ser un número.',
  'The value of key %s is not a number.' => 'El valor de la clave %s no es un número.',
  'The module is not available for this host.' => 'Módulo no disponible para este host.',
  'The [[%s]] parameter is not correct.' => 'El parámetro [[%s]] no es correcto.',
  'Comment field contains incorrect type data as a value.' => 'El campo de comentarios contiene datos de tipo incorrecto.',
  'The [[%s]] parameter must be plain row/list without nested row/list.' => 'El parámetro [[%s]] debe ser un row/list simple sin row/list anidados.',
  'Calling a third-party script.' => 'Llamada a script externo.',
  'Not for the temporary table.' => 'No para tabla temporal.',
  'The [[%s]] field is not found in the [[%s]] table.' => 'Campo [[%s]] no encontrado en la tabla [[%s]].',
  'Function [[linkToEdit]] not available for [[%s]] field type.' => 'Función [[linkToEdit]] no disponible para el tipo de campo [[%s]].',
  'The %s field must be numeric.' => 'El campo %s debe ser numérico.',
  'The value of the %s field must be numeric.' => 'El valor del campo %s debe ser numérico.',
  'For selecting by numeric field [[%s]] you must pass numeric values' => 'Se debe proporcionar un número para filtrar por el campo numérico [[%s]]',
  'The value of %s field must match the format: %s' => 'El valor del campo %s debe coincidir con el formato: %s',
  'The row with %s was not found in table %s.' => 'Fila con %s no encontrada en la tabla %s.',
  'Row not found' => 'Fila no encontrada',
  'Row %s not found' => 'Fila %s no encontrada',
  'The row %s does not exist or is not available for your role.' => 'La fila %s no existe o no está accesible para tu rol.',
  'For lists comparisons, only available =, ==, !=, !==.' => 'Solo están disponibles =, ==, !=, !== para la comparación de listas.',
  'There should be a date, not a list.' => 'Debe ser una fecha, no una lista.',
  'There must be only one comparison operator in the string.' => 'En la línea debe haber solo un operador de comparación.',
  'TOTUM-code format error [[%s]].' => 'Error de formato del código TOTUM [[%s]].',
  'XML Format Error.' => 'Error de formato XML.',
  'Code format error - no start section.' => 'Error de formato de código: falta la sección de inicio.',
  'The [[catch]] code of line [[%s]] was not found.' => 'Línea [[catch]] de código [[%s]] no encontrada.',
  'ERR!' => 'ERR!',
  'Database error: [[%s]]' => 'Error de base de datos: [[%s]]',
  'Database connect error. Try later. [[%s]]' => 'Error de conexión a la base de datos. Inténtelo más tarde. [[%s]]',
  'Critical error while processing [[%s]] code.' => 'Error crítico al procesar el código [[%s]].',
  'field [[%s]] of [[%s]] table' => 'campo [[%s]] de la tabla [[%s]]',
  'Error: %s' => 'Error %s',
  'You cannot use linktoDataTable outside of actionCode without hide:true.' => 'No se puede usar linktoDataTable fuera del código de acción sin hide:true.',
  'left element' => 'elemento izquierdo',
  'right element' => 'elemento derecho',
  'Division by zero.' => 'División por cero.',
  'Unknown operator [[%s]].' => 'Operador desconocido [[%s]].',
  'Non-numeric parameter in the list %s' => 'Parámetro no numérico en la lista %s',
  'The [[%s]] parameter must be set to one of the following values: %s' => 'El parámetro [[%s]] debe tomar uno de los valores: %s',
  'Function [[%s]]' => 'Función [[%s]]',
  'Function [[%s]] is not found.' => 'Función [[%s]] no encontrada.',
  'Table [[%s]] is not found.' => 'Tabla [[%s]] no encontrada.',
  'Table is not found.' => 'Tabla no encontrada.',
  'Max value of %s is %s.' => 'Valor máximo del parámetro %s es %s',
  'May be insert row has expired.' => 'Es posible que haya expirado la vida útil de la fila de adición.',
  'The storage time of the temporary object has expired.' => 'El tiempo de almacenamiento del objeto temporal ha expirado.',
  'File [[%s]] is not found.' => 'Archivo [[%s]] no encontrado.',
  'Cycle [[%s]] is not found.' => 'Ciclo [[%s]] no encontrado.',
  'Cycle [[%s]] in table [[%s]] is not found.' => 'Ciclo [[%s]] en la tabla [[%s]] no encontrado.',
  'TOTUM-code format error: missing operator in expression [[%s]].' => 'Error de formato de código TOTUM: falta operador en la expresión [[%s]].',
  'TOTUM-code format error: missing part of parameter.' => 'Error de formato de código TOTUM: falta parte del parámetro.',
  'No key %s was found in the data row.' => 'Clave %s no encontrada en la cadena de datos',
  'There is no [[%s]] key in the [[%s]] list.' => 'No existe la clave [[%s]] en la lista [[%s]].',
  'Regular expression error: [[%s]]' => 'Error de expresión regular: [[%s]]',
  'Parameter [[%s]] returned a non-true/false value.' => 'El parámetro [[%s]] devolvió un valor distinto de true/false.',
  'The [[%s]] parameter must contain 2 elements.' => 'El parámetro [[%s]] debe contener 2 elementos.',
  'The [[%s]] parameter must contain 3 elements.' => 'El parámetro [[%s]] debe contener 3 elementos.',
  'The %s parameter must contain a comparison element.' => 'El parámetro %s debe incluir un elemento de comparación.',
  'Variable [[%s]] is not defined.' => 'Variable [[%s]] no está definida.',
  'Code [[%s]] was not found.' => 'Código [[%s]] no encontrado.',
  'Code line [[%s]].' => 'Línea de código [[%s]].',
  'Previous row not found. Works only for calculation tables.' => 'Fila anterior no encontrada. Funciona solo para hojas de cálculo.',
  'Cannot access the current value of the field from the Code.' => 'En código de tipo Código (cálculo de valor de campo), no se puede referir al valor actual del campo.',
  'Field [[%s]] is not found.' => 'Campo [[%s]] no encontrado.',
  'The key [[%s]] is not found in one of the array elements.' => 'Clave [[%s]] no encontrada en uno de los elementos del array.',
  'There must be two [[%s]] parameters in the [[%s]] function.' => 'Debe haber dos parámetros [[%s]] en la función [[%s]].',
  'The [[%s]] parameter must be [[%s]].' => 'El parámetro [[%s]] debe ser [[%s]].',
  'The [[%s]] parameter must [[not]] be [[%s]].' => 'El parámetro [[%s]] [[no]] debe ser [[%s]].',
  'The number of the [[%s]] must be equal to the number of [[%s]].' => 'La cantidad de [[%s]] debe ser igual a la cantidad de [[%s]].',
  'The [[%s]] parameter must be one type with [[%s]] parameter.' => 'El parámetro [[%s]] debe ser del mismo tipo que el parámetro [[%s]].',
  'No characters selected for generation.' => 'No se seleccionaron caracteres para generar.',
  'For selecting by %s field should be passed only single value or list, not row' => 'Para la selección por %s, el campo debe pasar solo un valor o una lista, no una row.',
  'The value by %s key is not a row/list' => 'El valor por clave %s no es row ni list',
  'The key must be an one value' => 'La clave debe ser un solo valor',
  'There is no NowField enabled in this type of code. We\'ll fix it - write us.' => 'En este tipo de código, nowField no está conectado.',
  '[[%s]] is available only for the calculation table in the cycle.' => '[[%s]] disponible solo para tabla de cálculo en ciclo.',
  'The ExecSSH function is disabled. Enable execSSHOn in Conf.php.' => 'La función execSSH está desactivada. Activa execSSHOn en Conf.php',
  'Ssh:true in exec function is disabled. Enable execSSHOn in Conf.php.' => 'El parámetro ssh:true está desactivado. Activa execSSHOn en Conf.php',
  'The [[%s]] parameter has not been set in this code.' => 'El parámetro [[%s]] no fue establecido en este código.',
  'All list elements must be lists.' => 'Todos los elementos de la lista deben ser listas.',
  'None of the elements of the %s parameter array must be a list.' => 'Ninguno de los elementos del array del parámetro %s debe ser una lista.',
  'Parameter %s must contain list of numbers' => 'El parámetro %s debe contener una lista de números',
  'The array element does not fit the filtering conditions - the value is not a list.' => 'El elemento del array no cumple con las condiciones de filtrado: el valor no es un list.',
  'The array element does not fit the filtering conditions - [[item]] is not found.' => 'El elemento del array no cumple con las condiciones de filtrado — [[item]] no encontrado.',
  '[[%s]] is not a multiple parameter.' => '[[%s]] — no es un parámetro múltiple.',
  'Not found template [[%s]] for parameter [[%s]].' => 'No se encontró el template [[%s]] para el parámetro [[%s]].',
  'No template is specified for [[%s]].' => 'No se especificó template para el parámetro [[%s]].',
  'The unpaired closing parenthesis.' => 'Paréntesis de cierre sin pareja.',
  'JSON generation error: [[%s]].' => 'Error de formación de JSON: [[%s]].',
  'JSON parsing error: [[%s]].' => 'Error de análisis JSON: [[%s]].',
  'The code should return [[%s]].' => 'El código debe devolver [[%s]].',
  'The [[insert]] field should return list - Table [[%s]]' => 'El campo [[insert]] debe devolver una lista — Tabla [[%s]]',
  'The [[insert]] field should return a list with unique values - Table [[%s]]' => 'El campo [[insert]] debe devolver una lista con valores únicos — Tabla [[%s]]',
  'This value is not available for entry in field %s.' => 'Este valor no está disponible para ingresar en el campo %s.',
  'Format sections' => 'Secciones de Formato',
  'Cron error' => 'Error de cron',
  'The schema is not connected.' => 'Esquema no conectado.',
  'Error accessing the anonymous tables module.' => 'Error de acceso al módulo de tablas anónimas.',
  'Page processing time: %s sec.<br/>
    RAM: %sM. of %s.<br/>
    Sql Schema: %s, V %s<br/>' => 'Tiempo de procesamiento: %s sec.<br/>     RAM: %sM. of %s.<br/>     Sql Schema: %s, V %s<br/>',
  'Order field calculation errors' => 'Errores de orden de cálculo o acceso a campos de filas eliminadas',
  'in %s table in fields:' => 'en la tabla %s en los campos:',
  'Settings for sending mail are not set.' => 'Configuración de envío de correo no establecida.',
  'The path to ssh script %s is not set.' => 'Ruta del script SSH %s no establecida.',
  'Request processing error.' => 'Error de procesamiento de solicitud.',
  'Error generating JSON response to client [[%s]].' => 'Error al generar respuesta JSON en el cliente [[%s]].',
  'Initialization error: [[%s]].' => 'Error de inicialización: [[%s]].',
  'Header' => 'Encabezado',
  'Footer' => 'Pie',
  'Rows part' => 'Parte de fila',
  'Filters' => 'Filtros',
  'Filter' => 'Filtro',
  'Row: id %s' => 'Fila: id %s',
  'ID is empty' => 'ID está vacío',
  'User %s is not configured. Contact your system administrator.' => 'Usuario %s no configurado. Contacte al administrador del sistema.',
  'Table [[%s]] was changed. Update the table to make the changes.' => 'La tabla [[%s]] ha sido modificada. Actualice la tabla para aplicar los cambios.',
  'Table was changed' => 'La tabla fue modificada',
  'The anchor field settings are incorrect.' => 'La configuración del campo de anclaje es incorrecta.',
  'Field type is not defined.' => 'Tipo de campo no definido.',
  'Table type is not defined.' => 'Tipo de tabla no definido.',
  'The [[%s]] table type is not connected to the system.' => 'El tipo de tabla [[%s]] no está conectado al sistema.',
  'Unsupported channel [[%s]] is specified.' => 'Canal no compatible [[%s]] especificado.',
  'Field [[%s]] of table [[%s]] is required.' => 'El campo [[%s]] de la tabla [[%s]] es obligatorio.',
  'Authorization lost.' => 'Autorización perdida.',
  'Scheme file not found.' => 'Archivo de esquema no encontrado.',
  'Scheme not found.' => 'Esquema no encontrado.',
  'Scheme file is empty' => 'Archivo de esquema vacío',
  'Wrong format scheme file.' => 'El archivo de esquema tiene un formato incorrecto.',
  'Translates file not found.' => 'Archivo de traducción no encontrado.',
  'Translates file is empty' => 'El archivo de traducción está vacío',
  'Wrong format file' => 'Formato de archivo no válido',
  'Administrator' => 'Admin',
  'The type of the loaded table [[%s]] does not match.' => 'Desajuste del tipo de tabla cargada [[%s]].',
  'The cycles table for the adding calculation table [[%s]] is not set.' => 'No se ha establecido la tabla de ciclos para la tabla de cálculo añadida [[%s]].',
  'The format of the schema name is incorrect. Small English letters, numbers and - _' => 'Formato de nombre de esquema incorrecto. Letras latinas minúsculas, dígitos y - _',
  'A scheme exists - choose another one to install.' => 'El esquema existe — elija otro para la instalación.',
  'You can\'t install totum in schema "public"' => 'No se puede instalar Totum en el esquema público',
  'Category [[%s]] not found for replacement.' => 'Categoría [[%s]] no encontrada para reemplazo.',
  'Role [[%s]] not found for replacement.' => 'Rol [[%s]] no encontrado para reemplazo.',
  'Branch [[%s]] not found for replacement.' => 'Rama [[%s]] no encontrada para reemplazo.',
  'Error saving file %s' => 'Error al guardar archivo %s',
  'A nonexistent [[%s]] property was requested.' => 'Propiedad inexistente solicitada [[%s]].',
  'Import from csv is not available for [[%s]] field.' => 'La importación desde CSV no está disponible para el campo [[%s]].',
  'Export via csv is not available for [[%s]] field.' => 'La exportación a través de CSV no está disponible para el campo [[%s]].',
  'You do not have access to csv-import in this table' => 'No tienes acceso para importar CSV en esta tabla',
  'Date format error: [[%s]].' => 'Formato de fecha incorrecto: [[%s]].',
  '[[%s]] format error: [[%s]].' => 'Formato [[%s]] es incorrecto: [[%s]].',
  '[[%s]] is reqired.' => '[[%s]] es obligatorio.',
  'Settings field.' => 'Campo de ajustes.',
  'You cannot create a [[footer]] field for [[non-calculated]] tables.' => 'No se puede crear un campo de [[pie de página]] [[no para tablas de cálculo]].',
  'File > ' => 'Archivo mayor',
  'File not received. May be too big.' => 'Archivo no recibido. Tamaño podría ser demasiado grande.',
  'The data format is not correct for the File field.' => 'Formato de datos no apto para el campo Archivo.',
  'File name search error.' => 'Error de búsqueda de nombre de archivo.',
  'The file must have an extension.' => 'El archivo debe tener una extensión.',
  'Restricted to add executable files to the server.' => 'Prohibido añadir archivos ejecutables en el servidor.',
  'Failed to copy a temporary file.' => 'No se pudo copiar el archivo temporal.',
  'Failed to copy preview.' => 'No se pudo copiar la vista previa.',
  'Error copying a file to the storage folder.' => 'Error al copiar archivo a la carpeta de almacenamiento.',
  'Changed' => 'Modificado',
  'Empty' => 'Vacío',
  'All' => 'Todo',
  'Nothing' => 'Nada',
  ' elem.' => 'elem.',
  'Operation [[%s]] over lists is not supported.' => 'La operación [[%s]] en la lista no está soportada.',
  'Operation [[%s]] over not mupliple select is not supported.' => 'La operación [[%s]] sobre Select no múltiple no está soportada.',
  'Text modified' => 'Texto cambiado',
  'Text unchanged' => 'Texto coincide',
  'The looped tree' => 'Árbol en bucle',
  'Value not found' => 'Valor no encontrado',
  'Value format error' => 'Error de formato de valor',
  'Multiselect instead of select' => 'Multiselección en lugar de selección',
  'The value must be unique. Duplication in rows: [[%s - %s]]' => 'El valor debe ser único. Duplicado en filas: [[%s - %s]]',
  'There is no default version for table %s.' => 'No hay versión predeterminada para la tabla %s.',
  '[[%s]] cannot be a table name.' => '[[%s]] no puede ser el nombre de una tabla.',
  '[[%s]] cannot be a field name. Choose another name.' => '[[%s]] no puede ser el nombre del campo. Elija otro nombre.',
  'The name of the field cannot be new_field' => 'El nombre del campo no puede ser new_field',
  'Table creation error.' => 'Error al crear tabla.',
  'You cannot delete system tables.' => 'No se pueden eliminar tablas del sistema.',
  'You cannot delete system fields.' => 'No se pueden eliminar campos del sistema.',
  'The [[%s]] field is already present in the table.' => 'El campo [[%s]] ya existe en la tabla.',
  'The [[%s]] field is already present in the [[%s]] table.' => 'El campo [[%s]] ya existe en la tabla [[%s]].',
  'Fill in the field parameters.' => 'Complete los parámetros del campo.',
  'You can\'t make a boss of someone who is in a subordinate' => 'No se puede hacer jefe a un subordinado',
  'Log is empty.' => 'El registro está vacío.',
  'Method not specified' => 'Método no especificado',
  'Method [[%s]] in this module is not defined or has admin level access.' => 'El método [[%s]] en este módulo no está definido o tiene acceso de nivel admin.',
  'Method [[%s]] in this module is not defined.' => 'El método [[%s]] en este módulo no está definido.',
  'Your access to this table is read-only. Contact administrator to make changes.' => 'Su acceso a esta tabla es solo de lectura. Contacte al administrador para realizar cambios.',
  'Access to the table is denied.' => 'Acceso a la tabla denegado.',
  'Access to the form is denied.' => 'Acceso al formulario denegado.',
  'Form is not found.' => 'Formulario no encontrado',
  'Invalid link parameters.' => 'Parámetros de enlace incorrectos.',
  'Access to tables in a cycle through this module is not available.' => 'El acceso a las tablas en el ciclo a través de este módulo no está disponible.',
  'For quick forms only.' => 'Solo para formularios rápidos.',
  '%s table forms' => 'Formas de tabla %s',
  'Add form' => 'Agregar formulario',
  'This is not a simple table. Quick forms are only available for simple tables.' => 'Esta no es una tabla Simple. Los formularios rápidos solo están disponibles para tablas Simples.',
  'The quick table is not available in read-only mode.' => 'Tabla rápida no disponible en modo de solo lectura.',
  'The form requires link parameters to work.' => 'Se requieren parámetros de enlace para que el formulario funcione.',
  'Incorrect link parameters' => 'Parámetros de enlace incorrectos',
  'Save' => 'Guardar',
  'Access to the cycle is denied.' => 'Acceso al ciclo denegado.',
  'Table access error' => 'Error de acceso a la tabla',
  'Wrong path to the table' => 'Ruta de tabla incorrecta',
  'Wrong path to the form' => 'Ruta de formulario incorrecta',
  'Write access to the table is denied' => 'Acceso de escritura a la tabla denegado',
  'Login/Email' => 'Login/Correo',
  'Log in' => 'Iniciar sesión',
  'Logout' => 'Cerrar sesión',
  'Send new password to email' => 'Enviar nueva contraseña al correo',
  'Service is optimized for desktop browsers Chrome, Safari, Yandex latest versions. It seems that your version of the browser is not supported. Error - for developers: ' => 'Servicio optimizado para Chrome, Mozilla, Safari más recientes. Parece que tu versión de navegador no es compatible. Info de error:',
  'Credentials in %s' => 'Credenciales en %s',
  'Fill in the Login/Email field' => 'Ingrese Usuario/Correo',
  'Fill in the %s field' => 'Rellene el %s',
  'Fill in the Password field' => 'Ingrese Contraseña',
  'Password is not correct' => 'Contraseña incorrecta',
  'Due to exceeding the number of password attempts, your IP is blocked' => 'Debido a exceder el número de intentos de contraseña, su IP está bloqueada temporalmente.',
  'Password recovery via email is disabled for this database. Contact the solution administrator.' => 'La recuperación de contraseña por email para esta base de datos está desactivada. Contacte al administrador de la solución.',
  'Email for this login is not set' => 'Email para este login no establecido',
  'Password' => 'Contraseña',
  'An email with a new password has been sent to your Email. Check your inbox in a couple of minutes.' => 'El correo con su nueva contraseña ha sido enviado. Revise su buzón en unos minutos.',
  'Letter has not been sent: %s' => 'Correo no enviado: %s',
  'The user with the specified Login/Email was not found' => 'Usuario con el Login/Email especificado no encontrado',
  'To work with the system you need to enable JavaScript in your browser settings' => 'Para usar el sistema, activa JavaScript en la configuración del navegador.',
  'It didn\'t load :(' => 'No se cargó :(',
  'Forms user authorization error' => 'Error de autorización de usuario con acceso a Formularios',
  'Conflicts of access to the table error' => 'Error de acceso concurrente a la tabla',
  'Form configuration error - user denied access to the table' => 'Error de configuración de formulario: acceso a tabla denegado al usuario',
  'The [[%s]] field was not found. The table structure may have changed. Reload the page.' => 'No se encontró el campo [[%s]]. Puede que la estructura de la tabla haya cambiado. Recargue la página.',
  'Conf.php was created successfully. Connection to the database is set up, the start scheme is installed. You are authorized under specified login with the role of Creator. Click the link or refresh the page.' => 'Conf.php creado con éxito. Conexión a la base de datos configurada, esquema inicial instalado. Estás autorizado con el rol de Creador. Sigue el enlace o actualiza la página.',
  'Have a successful use of the system' => 'Uso exitoso del sistema',
  'Json not received or incorrectly formatted' => 'JSON no recibido o malformado',
  'A database transaction was closed before the main process was completed.' => 'La transacción de la base de datos se cerró antes de completar el proceso principal.',
  'No auth section found' => 'Sección de auth no encontrada',
  'The login attribute of the auth section was not found' => 'Atributo login en sección auth no encontrado',
  'The password attribute of the auth section was not found' => 'Atributo password en la sección auth no encontrado',
  'The user with this data was not found. Possibly the xml/json interface is not enabled.' => 'Usuario con tales datos no encontrado. Puede que no tenga acceso habilitado a la interfaz XML/JSON.',
  'The recalculate section must contain restrictions in the format [["field":FIELDNAME,"operator":OPERATOR,"value":VALUE]]' => 'La sección recalculate debe contener restricciones en el formato [["field":FIELDNAME,"operator":OPERATOR,"value":VALUE]]',
  'The field is not allowed to be edited through the api or does not exist in the specified category' => 'El campo no se puede editar a través de la API o no existe en la categoría especificada',
  'Multiple/Single value type error' => 'Error de tipo de valor múltiple/único',
  'In the export section, specify "fields":[] - enumeration of fields to be exported' => 'En la sección de exportación, indique "fields":[] — enumere los campos para la exportación',
  'Incorrect where in the rows-set-where section' => 'Formato incorrecto de where en la sección rows-set-where',
  'Without a table in the path, only the remotes section works' => 'Solo funciona la sección de remotos sin especificar la tabla en la ruta',
  'Remote {var} does not exist or is not available to you' => 'Remote {var} no existe o no está accesible para tu rol',
  'The name for remote is not set' => 'No se ha establecido nombre para remoto',
  'Field [[%s]] is not allowed to be added via Api' => 'El campo [[%s]] no está permitido para añadir a través de la API',
  'Field [[%s]] is not allowed to be edited via Api' => 'Campo [[%s]] no editable por API',
  'The [[%s]] field must contain multiple select' => 'El campo [[%s]] debe contener un multi-selección',
  'The [[%s]] field must contain a string' => 'El campo [[%s]] debe contener una cadena',
  'The %s field in %s table does not exist' => 'El campo %s en la tabla %s no existe',
  'You are not allowed to add to this table' => 'No puedes añadir a esta tabla con tu rol',
  'You are not allowed to delete from this table' => 'No puedes eliminar de esta tabla con tu rol',
  'You are not allowed to sort in this table' => 'La clasificación en esta tabla no está disponible para tu rol',
  'You are not allowed to duplicate in this table' => 'La duplicación en esta tabla no está disponible para tu rol',
  'You are not allowed to restore in this table' => 'La restauración en esta tabla no está disponible para tu rol',
  'Authorization error' => 'Error de autorización de usuario',
  'Remote is not connected to the user' => 'Remote no conectado al usuario',
  'Remote is not active or does not exist' => 'Remote no está activo o no existe',
  'Description' => 'Descripción',
  'Choose a table' => 'Seleccione tabla',
  'The choice is outdated.' => 'La opción propuesta está desactualizada.',
  'The proposed input is outdated.' => 'La entrada está desactualizada.',
  'Notifications' => 'Notificaciones',
  'Changing the name of a field' => 'Cambio de nombre de campo',
  'Fill in title' => 'Completa el título',
  'Select fields' => 'Seleccione campos',
  'Csv download of this table is not allowed for your role.' => 'La exportación CSV de esta tabla no está permitida para su rol.',
  'The name of the field is not set.' => 'Nombre de campo no establecido',
  'Access to the field is denied' => 'Acceso al campo denegado',
  'Access to edit %s field is denied' => 'Acceso para editar el campo %s denegado',
  'Interface Error' => 'Error de interfaz',
  'Temporary table storage time has expired' => 'Tiempo de almacenamiento de tabla temporal expirado',
  'Field not of type select/tree' => 'El campo no es de tipo Selección/Árbol',
  'Field not of type comments' => 'El campo no es de tipo Comentarios',
  'The tree index is not passed' => 'Índice de árbol no proporcionado',
  'Access to the logs is denied' => 'Acceso a registros denegado',
  'No manual changes were made in the field' => 'No se hicieron cambios manuales en el campo',
  'Failed to get branch Id' => 'Error al obtener ID de rama',
  'Add row out of date' => 'La línea de adición está obsoleta',
  'Log of manual changes by field "%s"' => 'Registro de cambios manuales para el campo "%s"',
  'Calculating the table' => 'Cálculo de tabla',
  'Table is empty' => 'La tabla está vacía',
  'Table %s. DUPLICATION CODE' => 'Tabla %s. CÓDIGO PARA DUPLICACIÓN',
  'Incorrect encoding of the file (should be utf-8 or windows-1251)' => 'Codificación de archivo incorrecta (debe ser utf-8 o windows-1251)',
  'Loading file of table %s into table [[%s]]' => 'Cargando archivo %s en tabla [[%s]]',
  'in row %s' => 'en la línea %s',
  'no table change code' => 'falta código de cambio de tabla',
  'no structure change code' => 'falta código de cambio de estructura',
  'The structure of the table was changed. Possibly a field order mismatch.' => 'Se cambió la estructura de la tabla. Puede haber desajuste en el orden de los campos.',
  'no indication of a cycle' => 'sin indicación de ciclo',
  'Table from another cycle or out of cycles' => 'Tabla de otro ciclo o fuera de ciclos',
  'There is no calculation table in [[%s]] cycles table.' => 'En la tabla de ciclos [[%s]], no hay ninguna tabla de cálculo.',
  'Out of cycles' => 'Fuera de ciclos',
  'Manual Values' => 'Valores manuales',
  'there is no Manual Values section header' => 'Falta el título de la sección Valores Manuales',
  'no 0/1/2 edit switch' => 'falta interruptor de edición 0/1/2',
  'no section header %s' => 'falta el título de la sección %s',
  'no filter data' => 'faltan datos de filtros',
  'on the line one line after the Rows part is missing the header of the Footer section' => 'en la fila cada otra después de la parte de filas, falta el encabezado de la sección Pie de página',
  '[0: do not modify calculated fields] [1: change values of calculated fields already set to manual] [2: change calculated fields]' => '[0: no procesar campos calculados] [1: cambiar valores de campos calculados con entrada manual] [2: cambiar campos calculados]',
  'More than 20 nesting levels of table changes. Most likely a recalculation loop' => 'Más de 20 niveles de anidación de modificación de tablas. Probablemente sea un bucle de recálculo.',
  'The field is not configured.' => 'Campo no configurado',
  'No select field specified' => 'Campo para selección no especificado',
  'More than one field/sfield is specified' => 'Se especificó más de un field/sfield',
  'The %s function is not provided for this type of tables' => 'La función %s no está prevista para este tipo de tablas',
  'script' => 'script',
  'Field [[%s]] in table [[%s]] is not a column' => 'El campo [[%s]] en la tabla [[%s]] no es una columna de tabla',
  'In the %s parameter you must use a list by the number of rows to be changed or not a list.' => 'En el parámetro where, usa un list que coincida con el número de filas modificables u otro tipo de valor.',
  'The function is used to change the rows part of the table.' => 'La función se utiliza para modificar las filas de la tabla.',
  'Incorrect interval [[%s]]' => 'Intervalo no válido [[%s]]',
  'The calculation table is not connected to %s cycles table' => 'Tabla de cálculo no vinculada a la tabla de ciclos %s',
  'User access' => 'Acceso de usuario',
  'Button to the cycle' => 'Botón en ciclo',
  'First you have to delete the cycles table, and then the calculation tables inside it' => 'Primero, elimina la tabla de ciclos, luego las tablas de cálculo dentro de ella.',
  'No line-by-line updates are provided for the calculation tables. They are recalculated in whole' => 'No se prevé la actualización fila por fila para las tablas de cálculo. Se recalculan por completo.',
  'Error processing field insert: [[%s]]' => 'Error al procesar el campo insert: [[%s]]',
  'Open' => 'Abrir',
  'The row with id %s in the table already exists. Cannot be added again' => 'La fila con id %s ya existe en la tabla. No se puede añadir de nuevo',
  'The [[%s]] field in the rows part of table [[%s]] does not exist' => 'El campo [[%s]] en la parte de fila de la tabla [[%s]] no existe',
  'Client side error. Received row instead of id' => 'Error del lado del cliente. Se recibió una cadena en lugar de id.',
  'Client side error' => 'Error del lado del cliente',
  'Logic error n: %s' => 'Error de lógica n: %s',
  'Adding row error' => 'Error al añadir fila',
  'The Parameters field type is valid only for the Tables Fields table' => 'Tipo de campo Parámetros permitido solo para tabla Composición de campos',
  'Data parameter  / data values must be numeric.' => 'El parámetro data / sus valores anidados deben ser numéricos',
  'An invalid value for id filtering was passed to the select function.' => 'Se pasó un valor no válido a la función select para filtrar por id.',
  'Value format error in id %s row field %s' => 'Error de formato de valor en la fila id %s campo %s',
  'Value format error in field %s' => 'Error de formato de valor en el campo %s',
  'Select format error in field %s' => 'Error de formato del select en el campo %s',
  'Not correct row in files list' => 'Matriz incorrecta en la lista en files',
  'The field type %s cannot be in the pre-filter' => 'El campo de tipo %s no puede estar en el prefiltro',
  'Crypto.key file not exists' => 'El archivo Crypto.key no existe',
  'Service does not accept more than 10 files' => 'El servicio no acepta más de 10 archivos',
  'Number of elements %s and %s do not match' => 'El número de elementos en %s y %s no coincide',
  'PDF printing for this table is switched off' => 'La impresión PDF para esta tabla está desactivada',
  'The code for the specified button is not found. Try again.' => 'El código del botón no se encuentra. Inténtalo de nuevo.',
  'Check that the ttm__search field type in table %s is data' => 'Verifique que el campo ttm__search en la tabla %s sea de tipo Datos',
  'The file table was not found.' => 'Tabla de archivo no encontrada.',
  'The file path is not formed correctly.' => 'La ruta del archivo está mal formada.',
  'The file is not protected' => 'El archivo no es seguro',
  'Access to the file field is denied' => 'Acceso al campo de archivo denegado',
  'Access to the file row is denied or the row does not exist' => 'El acceso a la línea del archivo está denegado o la línea no existe',
  'The file field was not found' => 'Campo de archivo no encontrado',
  'The file does not exist on the disk' => 'El archivo no existe en el disco',
  'File name parsing error' => 'Error de análisis de nombre de archivo',
  'The fileDuplicateOnCopy option must be enabled for secure files.' => 'La opción fileDuplicateOnCopy debe estar activada para archivos protegidos.',
  'DB connection by name %s was not found.' => 'Conexión a BD con nombre %s no encontrada.',
  'DB connection by hash %s was not found.' => 'Conexión a BD con hash %s no encontrada.',
  'Authorization type' => 'Tipo de auth',
  'Password recovering is not possible for users with special auth types' => 'La recuperación de contraseña no es posible para usuarios con tipos de autorización especiales.',
  'LDAP extension php not enabled' => 'Extensión LDAP para PHP no habilitada',
  'Set the binding format in the LDAP settings table' => 'Establecer formato de enlace en la tabla de configuración LDAP',
  'Set the host in the LDAP settings table' => 'Establecer host en tabla de configuración LDAP',
  'Set the port in the LDAP settings table' => 'Establecer puerto en tabla de configuración LDAP',
  'The function is not available' => 'Función no disponible',
  'Invalid parameter name' => 'Nombre de parámetro no válido',
  'Min value of %s is %s.' => 'Valor mínimo de %s es %s.',
  'User is switched off or does not have access rights' => 'Usuario deshabilitado o sin derechos de acceso',
  'The parameter [[%s]] should be of type row.' => 'El parámetro [[%s]] debe ser de tipo row.',
  'The fileDuplicateOnCopy option must be enabled for versioned files.' => 'El parámetro fileDuplicateOnCopy debe estar activado para archivos con versiones.',
  'Version adding error - file for version not found' => 'Error al añadir versión - archivo no encontrado',
  'The time to delete/replace the last file version has expired' => 'El tiempo para eliminar/reemplazar la última versión del archivo ha expirado',
  'File %s versions' => 'Versiones del archivo %s',
  'Field [[%s]] is required.' => 'El campo [[%s]] es obligatorio.',
  'Creator warnings' => 'Notificaciones al Administrador',
  'BFL-log is on' => 'Registro de errores y solicitudes externas activado',
  'list-ubsubscribe-link-text' => 'Darse de baja',
  'list-ubsubscribe-Blocked-from-sending' => 'Envío a este correo bloqueado',
  'list-ubsubscribe-done' => 'Listo',
  'list-ubsubscribe-wrong-link' => 'Enlace incorrecto',
  'There is no access to excel-import in this table' => 'Sin acceso a la importación de Excel en esta tabla',
  'The [[%s]] must be equal to the [[%s]].' => '[[%s]] debe ser igual a [[%s]].',
  'Excel import to %s' => 'Importar Excel a %s',
  'Token is not exists or is expired' => 'El token no existe o ha expirado',
  'This is a service user. He cannot be authorized by a token' => 'Este es un usuario de servicio. No puede ser autorizado por token.',
  'This user have Creator role. He cannot be authorized by a token' => 'Este usuario tiene el rol de Creador. No puede ser autorizado por token.',
  'This is not web user. He cannot be authorized by a token' => 'No es un usuario web. No puede ser autorizado por token.',
  'The OnlyOffice service table was successfully created. Repeat the operation.' => 'Tabla de servicio de OnlyOffice creada con éxito. Repita la operación.',
  'File key is not exists or is expired' => 'La clave del archivo no existe o ha expirado',
  'OnlyOfficeSaveTimeoutError' => 'No se puede guardar debido a la falta de cambios en el documento. Si está editando un xlsx u otra tabla, primero presione enter para guardar los datos en la celda editada o mueva el foco a otra celda.',
  'Permission is denied for selected user' => 'Usuario seleccionado sin acceso',
  'New secret code was sent' => 'Enviado nuevo código secreto',
  'You can\'t resend the secret yet.' => 'Reenviar el código secreto no es posible ahora',
  'Wrong secret code' => 'Código secreto incorrecto',
  'Secret code expired' => 'Código secreto caducado',
  'Resend secret' => 'Reenviar código secreto',
  'You can resend a secret via <span></span> sec' => 'Puedes reenviar el código en <span></span> seg',
  'Secret code' => 'Código secreto',
  'Recalculate cycle with id %s before export.' => 'Recalcula el ciclo con id %s antes de exportar.',
  'TOTUM-HELP-LINKS' => '[["📕 Documentación","https://docs.totum.online/"],["📗 Conceptos básicos para usuarios","https://docs.totum.online/user-guide"],["🚀 Licencias de la versión PRO","https://es.totum.online/pro"],["🤖 Totum AI","https://es.totum.online/ai"]]',
  'TOTUM-math format error [[%s]].' => 'Error de formato TOTUM-math [[%s]].',
  'Tree nesting error' => 'Error de anidamiento del árbol. Un elemento hijo no puede ser un elemento padre.',
  'Field [[%s]] is not of type password' => 'El campo [[%s]] no es de tipo contraseña',
  'Wrong [[%s]] value' => 'Valor no válido en [[%s]]',
);
	public function num2str($num): string
	{
	return (string) $num;
	}


    public function smallTranslit($s): string
    {
        return strtr(
            $s,
            [
			'ß'=>'ss', 'ä'=>'a', 'ü'=>'u', 'ö'=>'o',
			'á' => 'a', 'é' => 'e', 'í' => 'i', 'ó' => 'o', 'ú' => 'u',
			'ñ'=>'ny',
			'а' => 'a', 'б' => 'b', 'в' => 'v', 'г' => 'g', 'д' => 'd', 'е' => 'e', 'ё' => 'e', 'ж' => 'j', 'з' => 'z', 'и' => 'i', 'й' => 'y', 'к' => 'k', 'л' => 'l', 'м' => 'm', 'н' => 'n', 'о' => 'o', 'п' => 'p', 'р' => 'r', 'с' => 's', 'т' => 't', 'у' => 'u', 'ф' => 'f', 'х' => 'h', 'ц' => 'c', 'ч' => 'ch', 'ш' => 'sh', 'щ' => 'shch', 'ы' => 'y', 'э' => 'e', 'ю' => 'yu', 'я' => 'ya', 'ъ' => '', 'ь' => '']
        );
    }
	
	
	public function dateFormat(DateTime $date, $fStr): string
    {
        $result = '';
        foreach (preg_split(
                     '/([DlFfM])/',
                     $fStr,
                     -1,
                     PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE
                 ) as $split) {
            $var = null;
            switch ($split) {
                case 'D':
                    $var = 'weekDaysShort';
                // no break
                case 'l':
                    $var = $var ?? 'weekDays';
                    $result .= $this->getConstant($var)[$date->format('N')];
                    break;
                case 'F':
                    $var = 'months';
                // no break
                case 'f':
                    $var = $var ?? 'monthRods';
                // no break
                case 'M':
                    $var = $var ?? 'monthsShort';
                    $result .= $this->getConstant($var)[$date->format('n')];
                    break;
                default:
                    $result .= $date->format($split);
            }
        }
        return $result;
    }

    protected function getConstant($name): array
	{
    return match ($name) {
        'monthsShort' => [
            1 => 'Ene',
            'Feb',
            'Mar',
            'Abr',
            'May',
            'Jun',
            'Jul',
            'Ago',
            'Sep',
            'Oct',
            'Nov',
            'Dic'
        ],
        'months' => [
            1 => 'Enero',
            'Febrero',
            'Marzo',
            'Abril',
            'Mayo',
            'Junio',
            'Julio',
            'Agosto',
            'Septiembre',
            'Octubre',
            'Noviembre',
            'Diciembre'
        ],
        'weekDays' => [
            1 => 'Lunes',
            'Martes',
            'Miércoles',
            'Jueves',
            'Viernes',
            'Sábado',
            'Domingo'
        ],
        'weekDaysShort' => [
            1 => 'Lun',
            'Mar',
            'Mié',
            'Jue',
            'Vie',
            'Sáb',
            'Dom'
        ],
        'monthRods' => [
            1 => 'de enero',
            'de febrero',
            'de marzo',
            'de abril',
            'de mayo',
            'de junio',
            'de julio',
            'de agosto',
            'de septiembre',
            'de octubre',
            'de noviembre',
            'de diciembre'
        ],
    };
}
}